package com.oracle.setreview;

import java.util.HashSet;

/**
 * @author zhouyanxiang
 * @create 2020-08-2020/8/12-21:28
 * HashSet底层存放的是散列值，它是按照元素的散列值来存放元素。
 * 元素的散列值是通过元素的hashCode()方法计算得到的。
 * HashSet首先判断两个元素的散列值是否相等？
 * - 如果相等，则接着通过equals方法进行比较
 *      - 如果返回结果为true，HashSet就将其视为同一个元素
 *      - 如果返回结果为false，HashSet就不将其视为同一个元素
 */
public class HashSetReview {

    public static void main(String[] args) {
        HashSet<String> hs = new HashSet<String>();
        hs.add("Tom");
        // 这个就像高中数学的集合一样，具有唯一性，哪怕里面其实设置了多个相同的最终实质上都相同的数据都只存了一份
        hs.add("Tom");
        hs.add("Jerry");
        hs.add("Mike");
        hs.remove("Jerry");
        String name = "Mike";
        for(String s : hs ){
            System.out.println(s);
        }
        boolean flag = hs.contains(name);
        if (flag){
            System.out.println("the hs contains a boy named " + name);
        }
        System.out.println(hs);
    }

}
